package cn.ltgodm.template.user.service;

import cn.ltgodm.template.common.domain.entity.User;
import cn.ltgodm.template.common.domain.vo.UserVO;
import cn.ltgodm.template.user.domain.param.UserParam;
import cn.ltgodm.template.user.domain.param.UserQueryParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author wenpeng
* @description 针对表【lt_user(用户信息表)】的数据库操作Service
* @createDate 2024-03-17 21:19:39
*/
public interface UserService extends IService<User> {

    UserVO selectUserByUserName(String username);

    void validate(UserVO user);

    void recordLogininfor(String username, String status, String message, Object... args);

    IPage<UserVO> selectUserList(UserQueryParam userQueryParam);

    void checkUserDataScope(Long userId);

    UserVO selectUserById(Long userId);

    boolean checkUserNameUnique(User user);

    boolean checkPhoneUnique(User user);

    boolean checkEmailUnique(User user);

    int insertUser(UserParam user);

    void checkUserAllowed(UserParam user);

    int updateUser(UserParam user);

    boolean deleteUser(Long[] userIds);

    int resetPwd(User user);

    int updateUserStatus(User user);

    int registerUser(User userDB);
}
